How A Semantic Layer Makes Data Mesh Work At Scale